.NET MAUI-তে Animations (অ্যানিমেশন) এবং Visual Effects (ভিজ্যুয়াল এফেক্টস) অ্যাপ্লিকেশনের ইউজার ইন্টারফেসকে আরও আকর্ষণীয় ও ইন্টারঅ্যাকটিভ করে তোলে। এই অ্যানিমেশনগুলো ব্যবহার করে আপনি UI উপাদান যেমন ফেড, স্কেল, রোটেট এবং ট্রান্সলেট অ্যানিমেশন তৈরি করতে পারেন, যা অ্যাপ্লিকেশনকে আরো প্রাণবন্ত এবং ব্যবহারকারী-বান্ধব করে তোলে।
ফেড অ্যানিমেশন হল এমন একটি অ্যানিমেশন যা কোনো উপাদানের opacity (দৃশ্যমানতা) পরিবর্তন করে। আপনি একটি উপাদানকে ফেড ইন (দৃশ্যমান করা) অথবা ফেড আউট (অদৃশ্য করা) করতে পারেন।
// Fade ইন অ্যানিমেশন
await myLabel.FadeTo(1, 1000); // 1 = পূর্ণ দৃশ্যমান, 1000 = 1 সেকেন্ডে
// Fade আউট অ্যানিমেশন
await myLabel.FadeTo(0, 1000); // 0 = অদৃশ্য, 1000 = 1 সেকেন্ডে
FadeTo(double opacity, uint duration)
:opacity
: লক্ষ্য করা opacity (0 = অদৃশ্য, 1 = পূর্ণ দৃশ্যমান)।duration
: অ্যানিমেশনের সময়কাল (মিলিসেকেন্ডে)।ট্রান্সলেট অ্যানিমেশন উপাদানকে X এবং Y অক্ষের বরাবর স্থানান্তরিত করে। এটি উপাদানকে অনুভূমিক বা উল্লম্বভাবে সরাতে সাহায্য করে।
// উপাদানটিকে অনুভূমিকভাবে 100 পিক্সেল স্থানান্তরিত করা
await myLabel.TranslateTo(100, 0, 1000); // (100,0) স্থানান্তর 1 সেকেন্ডে
// উপাদানটিকে ডায়াগনালি স্থানান্তরিত করা
await myLabel.TranslateTo(100, 100, 1000); // (100,100) স্থানান্তর 1 সেকেন্ডে
TranslateTo(double x, double y, uint duration)
:x
: লক্ষ্য অনুভূমিক অবস্থান।y
: লক্ষ্য উল্লম্ব অবস্থান।duration
: স্থানান্তরের সময়কাল।এছাড়া, TranslateBy(x, y)
ব্যবহার করে আপনি উপাদানটির বর্তমান অবস্থান থেকে কিছু পরিমাণ স্থানান্তর করতে পারেন।
স্কেল অ্যানিমেশন একটি উপাদানের আকার পরিবর্তন করে। এটি উপাদানকে বড় বা ছোট করতে ব্যবহৃত হয়।
// উপাদানটিকে 2 গুণ বড় করা
await myLabel.ScaleTo(2, 1000); // 2x সাইজ, 1 সেকেন্ডে
// উপাদানটিকে ছোট করা
await myLabel.ScaleTo(0.5, 1000); // অর্ধেক সাইজ, 1 সেকেন্ডে
ScaleTo(double scale, uint duration)
:scale
: লক্ষ্য স্কেল ফ্যাক্টর (1 = মূল আকার, >1 = বড়, <1 = ছোট)।duration
: স্কেলিং অ্যানিমেশনের সময়কাল।এছাড়া, ScaleBy(scale)
ব্যবহার করে আপনি বর্তমান আকারের তুলনায় কিছু স্কেল পরিবর্তন করতে পারেন।
রোটেট অ্যানিমেশন একটি উপাদানকে তার কেন্দ্রের চারপাশে ঘুরায়। আপনি উপাদানটিকে ক্লকওয়াইজ বা আনক্লকওয়াইজ ঘুরাতে পারেন।
// উপাদানটিকে 90 ডিগ্রি ঘুরানো
await myLabel.RotateTo(90, 1000); // 90 ডিগ্রি, 1 সেকেন্ডে
// উপাদানটিকে মূল অবস্থায় ফিরিয়ে আনা (0 ডিগ্রি)
await myLabel.RotateTo(0, 1000); // 0 ডিগ্রি, 1 সেকেন্ডে
RotateTo(double degrees, uint duration)
:degrees
: লক্ষ্য রোটেশন ডিগ্রি (পজিটিভ ক্লকওয়াইজ, নেগেটিভ আনক্লকওয়াইজ)।duration
: ঘূর্ণন অ্যানিমেশনের সময়কাল।এছাড়া, RotateBy(degrees)
ব্যবহার করে আপনি বর্তমান রোটেশন থেকে কিছু ডিগ্রি ঘুরাতে পারেন।
আপনি একাধিক অ্যানিমেশন একসাথে চালাতে পারেন, যা খুবই শক্তিশালী একটি বৈশিষ্ট্য। এটি Task.WhenAll
ব্যবহার করে করা যায়, যাতে একাধিক অ্যানিমেশন একযোগে চলে।
// Fade আউট এবং তারপর ট্রান্সলেট করা
await myLabel.FadeTo(0, 1000); // 1 সেকেন্ডে Fade আউট
await myLabel.TranslateTo(100, 100, 1000); // এরপর (100, 100) এ স্থানান্তর
// একযোগে অ্যানিমেশন: রোটেট, স্কেল এবং ফেড
await Task.WhenAll(
myLabel.RotateTo(90, 1000), // 90 ডিগ্রি ঘুরানো
myLabel.ScaleTo(2, 1000), // দ্বিগুণ আকারে স্কেল করা
myLabel.FadeTo(1, 1000) // পূর্ণ দৃশ্যমান করা
);
এখানে, Task.WhenAll()
ব্যবহার করে তিনটি অ্যানিমেশন একসাথে চালানো হয়েছে।
.NET MAUI অ্যানিমেশনগুলিতে Easing ফাংশন যোগ করতে পারে, যা অ্যানিমেশনের গতির ধরণ নির্ধারণ করে। উদাহরণস্বরূপ, Bounce বা Elastic ইফেক্ট অ্যাপ্লিকেশনটির অ্যানিমেশনকে আরও আকর্ষণীয় করে তোলে।
// Bouncing Easing প্রভাব দিয়ে স্কেল করা
await myLabel.ScaleTo(2, 1000, Easing.BounceIn); // Bounce ইন ইফেক্ট
Easing
বিভিন্ন বিল্ট-ইন easing ফাংশন প্রদান করে, যেমন:Easing.Linear
: একটি সোজা অ্যানিমেশন।Easing.BounceIn
: শুরুতে বাউন্স প্রভাব।Easing.CubicInOut
: মসৃণ শুরুর এবং শেষের অ্যানিমেশন।এই কৌশলগুলি ব্যবহার করে আপনি আপনার .NET MAUI অ্যাপ্লিকেশনকে আরও ডায়নামিক এবং ইউজার-বান্ধব করতে পারবেন।
Read more